In general, a so-called storage area network (sometimes called a SAN) is a collection of data storage systems that are networked via a switching fabric to a number of host computer systems operating as servers. The host computers (also known as servers) of a respective storage area network access data stored in respective data storage systems on behalf of client computers that request data. For example, according to conventional techniques, upon receiving a storage access request, a respective host computer in a storage area network accesses a large repository of storage through a switching fabric on behalf of a corresponding requesting client. An access can include a read or write of data to storage.
Typically, many clients can access data through the same host computer or server. Thus, storage area networks enable multiple clients to access one or more shared storage systems through the same host computer. In many applications, storage area networks support hi-speed acquisitions of data so that the host servers are able to promptly retrieve and store data from the data storage system.
A respective infrastructure supporting access to data in a storage area network can be quite complex. For example, as discussed above, consider the number of hardware and software components that must work in harmony in order for a user to successfully access data stored in a storage array of a SAN. To access such data, a user application provides file system calls or requests (e.g., open, read, write and so forth) to a file system resource presented to the user application by an operating system executing on the host computer system. The file system receives the file system calls and operates to map such file system calls to a series of I/O requests. The operating system on the host computer system transmits the I/O requests through a host interface device resource, such as an interface card (e.g., SCSI or FibreChannel adapter) having one or more I/O port resources, across an interface cable or networking medium of one or more switches (e.g., in a storage area network implementation) to a front-end adapter interface card resource operating on a high-capacity data storage array of the SAN. The front-end adapter interface card receives the I/O requests and interprets them to identify appropriate data locations within specific storage device resources contained in the storage array.
After the requested data is accessed from the storage devices, respective I/O responses are typically returned from the accessed storage system to the user application along an information or data flow path (based on operations and processing functionality provided by each of the aforementioned components and resources) in a reverse direction back to the application on the host computer running the client application. In this way, access to data in a conventional storage area network involves reliance on a proper operation and coordination of a multitude of software and hardware resources in a storage area network to retrieve data from storage and serve the data to a client.
If even a single resource such as a switch, operating system, host bus adapter, storage system, etc. in a respective storage area network is incompatible with other hardware and/or software resources present in the storage area network, then the storage area network may no longer operate properly and enable a respective user to retrieve stored data.
One conventional way to ensure that a storage area network will work properly (e.g., so that the storage area network enables users to access corresponding stored data) is to utilize a set of interoperability rules to verify that a respective storage area network is configured properly. In general, the set of interoperability rules indicates which combination of different types of hardware and software resources are compatible with each other and can be used together in a respective storage area network. When rules are applied to a respective storage area network configuration, an administrator can identify storage area network resource incompatibilities.